class Watcher {
    constructor(vm, key, cb) {
        this.vm = vm
            //data中的属性名称
        this.key = key
            //回调函数负责更新视图
        this.cb = cb

        //把Watcher对象记录到Dep类的静态属性target中
        Dep.target = this;

        //触发get方法，在gt方法中会用addSub
        this.oldValue = vm[key]

        Dep.target = null
    };
    //当数据 发生变化 时更新视图
    update() {
        let newValue = this.vm[this.key]
        if (this.oldValue === newValue) {
            return
        }
        this.cb(newValue)
    }

}